package controller.Interface;

import java.net.InetAddress;
import java.util.Iterator;

import model.entity.User;

/**
 * 
 <b>Project ChatSystemG6 INSA 4INFOA1 - 2013/2014</b>
 * <P>
 * <i>Package controller </i> <br>
 * Interface RemoteUserListInterface which describes the signals listened when a
 * remote user gets connected or disconnected
 * 
 * @author Christelle SIAGO HAPPI
 * 
 */
public interface RemoteUserListInterface {

	/**
	 * create a new remote user
	 * 
	 * @param adress
	 *            : the IP address of the remote user to add
	 * @param username
	 *            : the login of the remote user to add
	 */
	public void newUser(String username, InetAddress adress);

	/**
	 * @param adress
	 *            : the IP adress of the remote user to add
	 * @param username
	 *            : the login of the remote user to add
	 */
	public void addUser(String username, InetAddress adress);

	/**
	 * remove a remove user from the collection
	 * 
	 * @param adress
	 *            : the IP Address of the remote user to remove
	 */
	public void removeUser(String username);

	/**
	 * remove all the remote users from the collection
	 * 
	 * */
	public void removeAll();
}